package com.study.service;

import com.study.pojo.Book;
import com.study.pojo.Chapter;

import java.util.List;

/**
 * @Author Miss kun
 * @Date 2020/9/23 17:24
 * @Version 1.0
 */
public interface BookService{
    /**
     * 添加一本书
     * @param book
     * @return
     */
    int addBook(Book book);

    /**
     * 通过  书名和书的作者 获取图书id
     * @param book
     * @return
     */
    List<Book> getBookById(Book book);

    /**
     * 通过图书id查询章节信息
     * @param id
     * @return
     */
    List<Book> getChaptersByBookId(Integer id);


    /**
     * 随机抽取30b本书显示到页面中
     *
     * @return
     */
    List<Book> getBooks();

    /**
     * 获取图书的总数
     * @return
     */
    Integer getCount();

    /**
     * 获取指定图书章节内容
     * @param bookId 图书id
     * @param chapterId 章节id
     * @return
     */
    Book getChapterById(Integer bookId,Integer chapterId);

    /**
     * 获取分页的内容
     * @param page 参数pageNum 是页码值
     * @param size 参数pageSize 代表是每页显示条数
     * @param type 根据传来的类型来进行分类
     * @return
     */
    List<Book> getBookByPage(int page,int size,String type);

    /**
     * 分类别获取图书数量
     * @param type
     * @return
     */
    Integer getCountByType(String type);


    /**
     * 模糊查询
     * @param name
     * @param page
     * @param size
     * @return
     */
    List<Book> getBookByLike(String name,int page,int size);

    /**
     * 获取更据图书类别查找的数量
     * @param name
     * @return
     */
    Integer getCountByLikes(String name);



    /**
     * 获取首页的排行榜
     * @return
     */
    List<Book> getBookByRankList();

    /**
     * 根据类型查找排行榜图书
     * @param type
     * @return
     */
    List<Book> getBookRankByType(String type);
    /**
     * 删除一本书
     * @param id
     * @return
     */
    //int deleteBookById(Integer id);

    /**
     * 修改一本书
     * @param book
     * @return
     */
    //int updateBook(Books book);

    /**
     * 查找一本书
     * @param id
     * @return
     */
    //Books queryBookById(Integer id);

    /**
     * 查找所以的书
     * @return
     */
   // List<Books> queryByAllBooks();

    /**
     * 通过名字查询一本书
     * @param name
     * @return
     */
   // List<Books> queryBookByName(String name);

}
